home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / etc / bash_completion.d / ufw < prev    next >
Text File  |  2009-09-23  |  2KB  |  88 lines

  1. #
  2. # Copyright 2009 Canonical Ltd.
  3. #
  4. #    This program is free software: you can redistribute it and/or modify
  5. #    it under the terms of the GNU General Public License version 3,
  6. #    as published by the Free Software Foundation.
  7. #
  8. #    This program is distributed in the hope that it will be useful,
  9. #    but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11. #    GNU General Public License for more details.
  12. #
  13. #    You should have received a copy of the GNU General Public License
  14. #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
  15. #
  16. # Based on work by Didier Roche <didrocks@ubuntu.com>
  17. #
  18.  
  19. _ufw_commands()
  20. {
  21.     commands=$(ufw --help | sed -e '1,/^Commands:/d' -e '/^Application profile commands:/Q' -e 's/^[ \t]\+\([a-z|]\+\)[ \t]\+.*/\1/g' -e 's/|/ /g' | uniq)
  22.     echo "$commands app"
  23. }
  24.  
  25. _ufw_app_commands()
  26. {
  27.     ufw --help | sed -e '1,/^Application profile commands:/d' -e '/^ [^ ]/!d' -e 's/[ \t]\+app[ \t]\+\([a-z|]\+\)[ \t]\+.*/\1/g'
  28. }
  29.  
  30. _ufw_logging_commands()
  31. {
  32.     echo "off on low medium high full"
  33. }
  34.  
  35. _ufw_default_commands()
  36. {
  37.     echo "allow deny reject"
  38. }
  39.  
  40. _ufw_rule_commands()
  41. {
  42.     echo "`_ufw_default_commands` limit"
  43. }
  44.  
  45. _ufw_show_commands()
  46. {
  47.     echo "raw"
  48. }
  49.  
  50. _ufw_status_commands()
  51. {
  52.     echo "numbered verbose"
  53. }
  54.  
  55. have ufw &&
  56. _ufw()
  57. {
  58.     cur=${COMP_WORDS[COMP_CWORD]}
  59.     prev=${COMP_WORDS[COMP_CWORD-1]}
  60.     if [ $COMP_CWORD -eq 1 ]; then
  61.         COMPREPLY=( $( compgen -W "$(_ufw_commands)" $cur ) )
  62.     elif [ $COMP_CWORD -eq 2 ]; then
  63.         case "$prev" in
  64.         app)
  65.             COMPREPLY=( $( compgen -W "$(_ufw_app_commands)" $cur ) )
  66.             ;;
  67.         status)
  68.             COMPREPLY=( $( compgen -W "$(_ufw_status_commands)" $cur ) )
  69.             ;;
  70.         delete)
  71.             COMPREPLY=( $( compgen -W "$(_ufw_rule_commands)" $cur ) )
  72.             ;;
  73.         logging)
  74.             COMPREPLY=( $( compgen -W "$(_ufw_logging_commands)" $cur ) )
  75.             ;;
  76.         show)
  77.             COMPREPLY=( $( compgen -W "$(_ufw_show_commands)" $cur ) )
  78.             ;;
  79.         default)
  80.             COMPREPLY=( $( compgen -W "$(_ufw_default_commands)" $cur ) )
  81.             ;;
  82.         esac
  83.     fi
  84. }
  85.  
  86. [ "$have" ] && complete -F _ufw ufw
  87.  
  88.